#include <game.h>

void reset_avatar(int x, int y, int vx, int a) {
    avatar.x = x;
    avatar.y = y;
    avatar.vx = (double)vx;
    avatar.vy = 0;
    avatar.flying = false;
    avatar.dead = false;
    avatar.init_y = y;
    avatar.a = a;
}

void jump(int vy) {
    Assert(avatar.dead==false, "Avatar not alive!");
    if (avatar.flying) return;
    avatar.flying = true;
    avatar.vy = vy;
}

void update() {
    Assert(avatar.dead==false, "Avatar not alive!");
    if (avatar.flying) {
        if (avatar.y>=avatar.init_y && avatar.vy<0) {
            avatar.flying = false;
            avatar.vy = 0;
            avatar.y = avatar.init_y;
        }
        else {
            avatar.x += (avatar.vx / FPS);
            avatar.y -= (avatar.vy / FPS);
            avatar.vy -= (avatar.a / FPS);
        }
    }
    else {
        Assert(avatar.vy==0, "Avatar has not speed up!");
        avatar.x += (avatar.vx / FPS);
    }
}